package com.xcw.test.caozuo;

import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

/**
 * 、最近敏敏迷上了画画。她总喜欢在画板上画太阳。但是敏敏还不会数数。请你告诉敏敏她已经画了几个太阳了，好吗?
 * 画板是一个含有 R 个方格的面板，其中一些方格已经被敏敏涂黑了。一个方格有四个相邻的方格: 上下左右。
 * 两个被涂黑的方格被认为属于同一个太阳的充要条件是:这两个方格相邻。孤立的一个被涂黑的方格也是太阳。
 * 如果你了解连通区城的概念，那么一个连通分量就是一个太阳。希望你已经理解了题意。如果还没有理解，请认真分析样本数据。
 * (1) 本题分值:30 分。
 * (2) 考核时间: 54min。
 * (3) 考核形式:上机实操
 * (4) 编程语言: C/C++、Python、 Java 任选·种语言。
 * (5)输入: 第一行上有一个整数N，表示输入有组数据。
 * 每组数据的第一行是两个整数:R和W，分别表示行数和列数，不会超过 10。其后是一个R行W列的面板，数字1 表示该方格已经被敏敏涂黑，数字 0 表示该方格没有被敏敏涂黑。
 * (6) 输出:针对每组测试数据，输出一行整数，表示面板上太阳的总数目。
 * (7) 样例输入:
 * 45
 * 01000
 * 10011
 * 10011
 * 00000
 * (8) 样例输出:
 * 3
 */
public class P8_ {

    public static Map<Integer,String> intsMap = new HashMap<>();


    // 使用二元数组来表示当前的数据，按行遍历 如果可以组成一个连通性就会去除如果存在太阳值则缓存上次的位置值
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int num = scanner.nextInt();
        // 列数
        int index = num%10;
        // 行数
        int counts = num/10;
        System.out.println(index);
        System.out.println(counts);
        int[][] ints = new int[counts][index];
        for (int[] arr : ints) {
            System.out.println(Arrays.toString(arr));
        }
        for (int i = 0; i < counts; i++) {
            Scanner input = new Scanner(System.in);
            String arr = input.nextLine();
            char[] chars = arr.toCharArray();
            for (int j = 0; j < chars.length; j++) {
                ints[i][j] = Integer.valueOf(Character.toString(chars[j]));
            }
        }
        for (int[] arr : ints) {
            System.out.println(Arrays.toString(arr));
        }
        System.out.println("==============================");
        System.out.println(getSunCount(ints));

    }
    public static int getSunCount(int[][] ints){
        int count = 0;
        for (int i = 0; i < ints.length; i++) {
            for (int j = 0; j < ints[0].length; j++) {
                if (j > 0){
                    if (ints[i][j] != 0){
                        ints[i][j] = ints[i][j] + ints[i][j - 1];
                    }
                }
            }
        }

        for (int[] arr : ints) {
            System.out.println(Arrays.toString(arr));
        }
        for (int j = 0; j < ints[0].length; j++) {
            for (int i = 0; i < ints.length; i++) {
                if (i > 0){
                    if (ints[i][j] != 0){
                        ints[i][j] = ints[i][j] + ints[i - 1][j];
                    }
                }
            }
        }
        System.out.println("==============================");

        for (int[] arr : ints) {
            System.out.println(Arrays.toString(arr));
        }
        System.out.println("==============================");
        for (int i = 0; i < ints.length; i++) {
            for (int j = 0; j < ints[0].length; j++) {
               if (ints[i][j] == 1){
                   count++;
               }
            }
        }
        return count;
    }

}
